import Ember from 'ember';

/**
* 这里准备一些初始数据，比如全部角色对象，当前用户的登陆状态。
* 最好是先获取角色列表，然后获取用户登陆状态，这样可以解决用户角色寻找的问题。
*/

export default Ember.Route.extend({
  roles: null,
  model() {
    var myGlobals = this.get('myGlobals'),
        userState =  this.get('userState'),
        store = this.store,
        self = this,
        // url = '/login/state';
        url = '/login/state';

    //为了减少与服务器的来回，login/state现在回带回不少东西。
    //myRoles, allRoles, quotas等等。
    //{logined: true, myRoles:[], allRoles:[],quotas:[]}
    return Ember.$.getJSON(url).then(function(data){
      return userState.initMe(store, myGlobals, data);
    });
  },
  actions: {
    loading(/*transition, originRoute*/) {
    //displayLoadingSpinner();
    // console.log("loading......................");
      this.router.one('didTransition', function () {
      // hideLoadingSpinner();
      });

      // Return true to bubble this event to `FooRoute`
      // or `ApplicationRoute`.
      return true;
    },
    logout() {
    },
    backOneStep() {
      window.history.back();
    },
    emptyClick: function(){
      console.log("emptyClick");
      return false;
    },
    error(error/*, transition*/) {
      // console.log(error);
      // console.log(error.errors[0].status);
      // console.log(error.name);
      // console.log(error.message);

      var errors = error.errors || error;

      if (!Ember.$.isArray(errors)) {
        errors = [errors];
      }
      if (errors && errors.length > 0) {
        if (errors[0].status === "403" || errors[0].status === 403) {
          console.log("catch 403");
          return this.transitionTo('accessdeny');
        } else if (errors[0].status === "401" || errors[0].status === 401) {
          console.log("catch 401");
          // return this.transitionTo('/login');
          return Ember.$(location).attr('href',"/login");
        }
      }
      return true;
    },
    transitionMe (url) {
      return this.transitionTo(url);
    }
  }
});
